package juego;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Juego extends JFrame {

    Archivos archi;
    
    JButton vector_letras[];
    JButton vector_vacio[];
    String pala = null;
    JButton flecha;
    String cadenas_Aux[] = new String[6];
    String cadenaAux = "";
    int tiempo;
    int posx = 0;
    int posy;
    int num_palabra = 0;
    JLabel mu_eco;

    /**Informacion para el Java DOC**/
    public Juego() {
        cargar_ventana();
    }

    public void cargar_ventana() {
        archi = new Archivos();
        String [][] a = archi.leer_archivo("diccionario.txt") ;
        pala = a [num_palabra][0];
        setSize(800, 600);
        Dimension dpantalla = Toolkit.getDefaultToolkit().getScreenSize(); // obtengo el tamaño d ela pantalla
        Dimension dventana = getSize(); // obtengo el tamaño de la ventana 
        setLocation((dpantalla.width / 2) - dventana.width / 2, (dpantalla.height / 2) - dventana.height / 2);
        setLayout(null);
        getContentPane().setBackground(Color.CYAN);


        posx = getWidth() / 2 - 185;
        // posy=getHeight()/2; 
        vector_letras = new JButton[6];
        vector_vacio = new JButton[6];
        for (int i = 0; i < vector_letras.length; i++) {
            vector_letras[i] = new JButton();
            vector_letras[i].setBounds(posx, 300, 60, 60);
            vector_vacio[i] = new JButton();
            vector_vacio[i].setBounds(posx, 200, 60, 60);
            getContentPane().add(vector_letras[i]);
            getContentPane().add(vector_vacio[i]);
            char r = pala.charAt(i);
            vector_letras[i].setText("" + r);
            System.out.println(r);
            vector_letras[i].addMouseListener(new java.awt.event.MouseAdapter() {

                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    System.out.println("Click");
                    subirletra(((JButton) evt.getSource()).getText(), ((JButton) evt.getSource()));
                }
            });
            
            //vector_letras[i].setText(vector_letras[i].getText()+pala.substring(6-i));// validar esto bien 
            // vector_letras[i].setText(vector_letras[i].getText()+pala.split(pala));// validar esto bien 
            posx += 70;
//posy+=70; 
            vector_letras[i].repaint();

        }



        //   System.out.println(pala.split(pala));



        for (int i = 0; i < 6; i++) {
            // cadenas_Aux = [i].split(caracter[i]);
            cadenaAux += cadenas_Aux[i];
        }


        ImageIcon imag = new ImageIcon("boton_flecha.png");
        flecha = new JButton(imag);
        flecha.setBounds(650, 300, 52, 43);
        getContentPane().add(flecha);

        ImageIcon image = new ImageIcon("boton_volver.png");
        JButton volver = new JButton(image);
        volver.setBounds(150, 300, 52, 43);
        getContentPane().add(volver);
        volver.addMouseListener(new java.awt.event.MouseAdapter() {

                public void mouseClicked(java.awt.event.MouseEvent evt) {
                   desordenar_letras();
                   limpiar_casillas();
                }
            });
        ImageIcon mu = new ImageIcon("mu_eco.png");
        mu_eco = new JLabel(mu);
        mu_eco.setBounds(600, 350, 116, 219);


        getContentPane().add(mu_eco);
        setResizable(false);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        Juego a = new Juego();


    }

    public void subirletra(String letra, JButton boton) {
        boolean aux = false;
        for (JButton item : vector_vacio) {
            if (item.getText().isEmpty() && !aux) {
                item.setText(letra);
                aux = true;
                boton.setVisible(false);
            }
        }
        verificar_palabras();
    }

    public void limpiar_casillas() {
        for (JButton item : vector_vacio) {
            item.setText("");
            item.repaint();
            item.show();
        }
        int i = -1;
        for (JButton item : vector_letras) {
            i++;
            item.setText("" + pala.charAt(i));
            item.repaint();
            item.show();
        }
    }

    public void desordenar_letras() {
        Random ran = new Random();
        char [] aux = new char[pala.length()];
        for (int i = 0; i < pala.length(); i++) {
            aux[i]=pala.charAt(i);
        }
        int numale = ran.nextInt(pala.length());
        for (int x = 0; x < 5; x++) {     
            numale = ran.nextInt(pala.length()-1);
            if (numale < pala.length()) {
                 char caracter = aux[numale+1];
                 aux[numale+1]=aux[numale];
                 aux[numale]=caracter;
            }

        }
        String a = "";
        for (int i = 0; i < aux.length; i++) {
            a += aux[i];
        }
        pala = a;
    }
  
    public void verificar_palabras() {
        String palabra = "";
        for (JButton item : vector_vacio) {
            if (!item.getText().isEmpty()) {
                palabra += item.getText();
            }
        }
        System.out.println(palabra);
        String palabras[][] = archi.leer_archivo("diccionario.txt");
        if (palabras != null) {
            for (int x = 0; x < palabras.length; x++) {                
                if(palabras[num_palabra][x]!=null && palabras[num_palabra][x].equals(palabra)){
                    //PALABRA ENCONTRADA                    
                    limpiar_casillas();                    
                    this.repaint();
                }
            }
        }
    }
}
